/***************************************************
> Copyright (C) 2024 ==xiaoQUEinglong== All rights reserved.
> File Name: QUEueue.c
> Author: xiaoQUEinglong
> Mail:xiaoQUEinglong@QUEQUE.com 
> Created Time: 2024年11月05日 星期二 16时27分08秒
***************************************************/

/***************************************************
> Copyright (C) 2024 ==xiaoQUEinglong== All rights reserved.
> File Name: QUEueue.c
> Author: xiaoQUEinglong
> Mail:xiaoQUEinglong@QUEQUE.com 
> Created Time: 2024年11月04日 星期一 11时07分52秒
***************************************************/
#include "queue.h"
//创建头指针
QUE *create_queue(){
    QUE *p=(QUE *)malloc(sizeof(QUE));
    memset(p,0,sizeof(QUE));
    p->next=NULL;
    return p;
}
//入队
int push(int sock,char *temp,QUE *p){
    QUE *end=p;
    if(end==NULL){
        return 1;
    }
    while(end->next!=NULL){
        end=end->next;
    }
    QUE *q=(QUE *)malloc(sizeof(QUE));
    memset(q,0,sizeof(QUE));
    q->data.sockfd=sock;
    strcpy(q->data.function,temp);
    end->next=q;
    q->next=NULL;
    return 0;
}
//出队
QUE *pop(QUE *p){
    QUE *h=NULL;
    h=p->next;
    p->next=p->next->next;
    free(h);
    return h;
}
//计算队列大小
int com_size(QUE *p){
    QUE *end=p->next;
    if(end==NULL){
        return 1;
    }
    int i=0;
    while(end!=NULL){
        end=end->next;
        i++;
    }
    return i;
}
//判断队列是否为空
int isempty(QUE *p){
    if(p->next!=NULL){
        return 0;
    }
    else{
        return 1;
    }
}

